01-아키텍처이해및준비

Web/WAS 분리 아키텍처 이해 및 준비

Web 서버(Apache)와 WAS 서버(Tomcat)를 분리하는 3-Tier 아키텍처의 개념을 이해하고 준비 작업을 진행합니다.

Web/WAS 분리 아키텍처란?

기본 실습 vs 심화 실습 비교

기본 실습 (2-Tier):

사용자 → EC2 (Node.js) → RDS
        웹+앱 서버

심화 실습 (3-Tier):

사용자 → EC2 (Apache) → EC2 (Tomcat) → RDS
        웹 서버      WAS 서버

Web/WAS 분리의 장점

1. 역할 분담:

2. 성능 향상:

3. 확장성:

실습 아키텍처

네트워크 구조

인터넷
   ↓
Internet Gateway
   ↓
VPC (webapp-vpc)
   ├─ Public Subnet - Web 서버 영역
   │   └─ EC2 (Apache) - 포트 80
   │
   └─ Private Subnet - WAS 서버 영역  
       └─ EC2 (Tomcat) - 포트 8080

요청 처리 흐름

1. 사용자가 웹 페이지 요청
2. Apache에서 요청 받음
3. 정적 파일(.html, .css) → Apache에서 직접 처리
4. 동적 파일(.jsp) → Tomcat으로 전달
5. Tomcat에서 처리 후 결과를 Apache로 반환
6. Apache가 최종 결과를 사용자에게 전송

1. WAS 서버용 EC2 인스턴스 생성

Private 서브넷에 Tomcat이 설치될 EC2를 생성합니다.

EC2 인스턴스 시작

  1. EC2 콘솔 → 인스턴스 시작 클릭

인스턴스 기본 설정

Name: webapp-was-server

Application and OS Images: Amazon Linux 2023 AMI

Instance type: t2.micro

Key pair: webapp-keypair (기존 키페어 사용)

네트워크 설정

VPC: webapp-vpc

Subnet: webapp-private-subnet-app 또는 webapp-private-subnet-db (Private 서브넷)

Auto-assign public IP: Disable (Private 서브넷이므로)

Security Group: 새로 생성

WAS 보안 그룹 인바운드 규칙

규칙 1: SSH 접근

규칙 2: Tomcat 접근

규칙 3: AJP 연동

인스턴스 시작

"인스턴스 시작" 클릭

2. 기존 Web 서버 보안 그룹 수정

기존 Web 서버가 WAS 서버로 접근할 수 있도록 아웃바운드 규칙을 확인합니다.

Web 서버 보안 그룹 확인

  1. EC2 콘솔 → 보안 그룹 → webapp-web-sg 선택
  2. 아웃바운드 규칙 탭 확인
  3. 기본적으로 모든 아웃바운드가 허용되어 있으면 추가 설정 불필요

3. WAS 서버 접속 테스트

Private 서브넷의 WAS 서버는 Web 서버를 통해서만 접속 가능합니다.

Web 서버를 통한 점프 접속

# 1단계: Web 서버(Public)에 접속
ssh -i webapp-keypair.pem ec2-user@[Web서버-Public-IP]

# 2단계: Web 서버에서 WAS 서버(Private)로 접속
ssh ec2-user@[WAS서버-Private-IP]

# 예시: ssh ec2-user@10.0.2.10

WAS 서버 Private IP 확인 방법

  1. EC2 콘솔에서 webapp-was-server 인스턴스 클릭
  2. 세부 정보 탭에서 프라이빗 IPv4 주소 확인
  3. 예: 10.0.2.45

4. 네트워크 연결 테스트

Web 서버에서 WAS 서버로 연결 테스트

# Web 서버에서 실행 - WAS 서버와의 네트워크 연결 확인
ping [WAS서버-Private-IP]

# 예시: ping 10.0.2.45

# Ctrl+C로 중지

포트 연결 테스트

# Web 서버에서 WAS 서버의 8080 포트 연결 테스트
telnet [WAS서버-Private-IP] 8080

# 아직 Tomcat이 설치되지 않았으므로 연결 실패가 정상
# "Connection refused" 메시지가 나오면 정상

# telnet 종료: Ctrl+] 후 quit

완료 체크리스트

중요 정보 정리

다음 단계에서 사용할 정보를 기록해두세요:

WAS 서버 정보:


아키텍처 준비 완료! Web/WAS 분리를 위한 네트워크 구조와 서버 준비가 완료되었습니다.

다음 단계: AWS EDU/Archive/조선대학교 AWS 멘토링/Week3-WAS-Deployment/WebWAS분리/02-WAS서버구성으로 이동하여 Tomcat과 간단한 JSP 애플리케이션을 설치합니다.


관련 문서: AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/Week2-전체가이드